// --------------------------------------------------------------------------------------------------------------------
// <copyright file="RemotingPorts.cs" company="Microsoft Corporation">
// The MIT License (MIT)
// 
// Copyright (c) 2014, Microsoft Corporation
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
//  of this software and associated documentation files (the "Software"), to deal
//  in the Software without restriction, including without limitation the rights
//  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
//  copies of the Software, and to permit persons to whom the Software is
//  furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
//  THE SOFTWARE.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------
namespace Test.Robotics
{
    /// <summary>
    /// The set of ports used by remoting. 
    /// </summary>
    public enum RemotingPorts
    {
        /// <summary>
        /// Port number used by the EV4 heartbeat agent to publish messages
        /// </summary>
        EV4HeartbeatPublish = 60001,

        /// <summary>
        /// Port number used by the EV4 agent to receive control (e.g. drive command) messages
        /// </summary>
        EV4HeartbeatControl = 60002,

        /// <summary>
        /// Port number used by the HDP agent to publish HDP messages on EV4
        /// </summary>
        EV4DepthProfilePublish = 60003,

        /// <summary>
        /// Port number used by the DriveFeedback agent to publish DriveFeedback messages.
        /// </summary>
        DriveFeedbackPublish = 60004,

        /// <summary>
        /// Port number used by the PathTracking agent to publish MobileBaseVelocityReference messages.
        /// </summary>
        PathTrackingPublish = 60005,

        /// <summary>
        /// Port number used by the RobotMapPose agent to publish simple Pose2D messages.
        /// </summary>
        RobotMapPosePublish = 60006,

        /// <summary>
        /// Port number used by the RobotPoseEstimation agent to publish messages.
        /// </summary>
        RobotPoseEstimationPublish = 60007,

        /// <summary>
        /// Port number used by the Kinect agent to publish messages.
        /// </summary>
        KinectRawPublish = 60008,
        
        /// <summary>
        /// Port for publishing pick and place status messages
        /// </summary>
        PicknPlacePublish = 60009,

        /// <summary>
        /// Port for controlling the pick and place pipeline
        /// </summary>
        PicknPlaceControl = 60010,

        /// <summary>
        /// Port number used by the CameraPoseEstimation agent to publish messages.
        /// </summary>
        CameraPoseEstimationPublish = 60011,

        /// <summary>
        /// Port number used by the CameraPoseEstimation agent to receive control messages.
        /// </summary>
        CameraPoseEstimationControl = 60012,

        /// <summary>
        /// Port number used by the RGB camera agent to receive control messages.
        /// </summary>
        RgbCameraControl = 60013,

        /// <summary>
        /// Port number used by the turret scanner agent to receive control messages.
        /// </summary>
        TurretScannerControl = 60014,

        /// <summary>
        /// Port number used by arm control agent to receive control messages.
        /// </summary>
        ArmControl = 60015,

        /// <summary>
        /// Port number used by arm control agent to publish status messages.
        /// </summary>
        ArmPublish = 60016,

        /// <summary>
        /// Port number used by hand control agent to receive control messages.
        /// </summary>
        HandControl = 60017,

        /// <summary>
        /// Port number used by hand control agent to publish status messages.
        /// </summary>
        HandPublish = 60018,

        /// <summary>
        /// Port number used by motion planning agent to receive control messages.
        /// </summary>
        MotionPlanControl = 60019,

        /// <summary>
        /// Port number used by motion planning agent to publish status messages.
        /// </summary>
        MotionPlanPublish = 60020,

        /// <summary>
        /// Port number used to publish scaled down kinect image.
        /// </summary>
        ScaledDownDepthPublish = 60021,

        /// <summary>
        /// Port number used by the game pad agent for game pad messages
        /// </summary>
        GamePadPublish = 60022,

        /// <summary>
        /// Port number used by the arm visualizer
        /// </summary>
        ArmVisualizerPublish = 60023,

        /// <summary>
        /// Port number used by arm visualizer for control
        /// </summary>
        ArmVisualizerControl = 60024,

        /// <summary>
        /// From arm control to arm visualizer
        /// </summary>
        Arm2ArmVisualizerPublish = 60025,

        /// <summary>
        /// from arm control to arm visualizer
        /// </summary>
        Arm2ArmVisualizerControl = 60026,
    }
}
